The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various types of information with domain names assigned to each of the participating entities. A DNS resolves request for these names into IP addresses for the purpose of locating computer services and devices worldwide. It has been a desire for those skilled in the art to increase the speed of replying the DNS request with higher reliability. The state-of-art techniques are to have DNS proxy to cache DNS reply and to place DNS servers close to the edge of the network. However, state-of-art techniques do not take advantage of the situation when the gateway is connected to a plurality of access networks.
Furthermore, the state-of-art techniques for resolving DNS requests are open to security threats from third parties, as the transmitting of DNS request and the receiving of DNS response are not performed through secured channels. This makes it easy for third parties to tamper DNS requests or DNS responses, which may result in hosts accessing the wrong IP addresses for the domain names that they requested. Hence, a technique is required for increasing the speed of receiving a DNS response, while also ensuring that the security is not compromised.